package reflect;

import java.lang.reflect.Method;

/*
 * 利用反射机制调用Person类中所有公开且无参的方法
 * 1.获取Person类对象
 * 2.通过类对象获取该类的所有方法：getMethods()
 * 3.通过每一个方法的方法修饰符来得知该方法是否为公开的，无参的
 * 4.如果方法符合上述两点要求，则调用该方法：invoke()
 */
public class Test {
    public static void main(String[] args) throws Exception{
        Class c = Class.forName("reflect.Person");
        Object obj = c.newInstance();
        Method[] methods = c.getMethods();
        for(Method m : methods){
            if(m.getParameterTypes().length==0 && m.getModifiers()==1){
                System.out.println("调用方法："+m.getName());
                m.invoke(obj);
            }
        }
    }
}
